home *** CD-ROM | disk | FTP | other *** search
- //: C21:Transform.cpp
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // Use of STL transform() algorithm
- #include "Counted.h"
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
-
- template<class T>
- T* deleteP(T* x) { delete x; return 0; }
-
- template<class T> struct Deleter {
- T* operator()(T* x) { delete x; return 0; }
- };
-
- int main() {
- CountedVector cv("one");
- transform(cv.begin(), cv.end(), cv.begin(),
- deleteP<Counted>);
- CountedVector cv2("two");
- transform(cv2.begin(), cv2.end(), cv2.begin(),
- Deleter<Counted>());
- } ///:~
-